package com.cmq.web_1.listener;


import jakarta.servlet.ServletRequestEvent;
import jakarta.servlet.ServletRequestListener;
import jakarta.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Date;

public class AccessTrackListener implements ServletRequestListener {

    // 请求初始化时（记录访问轨迹）
    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        HttpServletRequest request = (HttpServletRequest) sre.getServletRequest();
        // 获取访问信息
        String url = request.getRequestURL().toString(); // 访问URL
        String method = request.getMethod(); // 请求方法（GET/POST）
        String sessionId = request.getSession().getId(); // 会话ID（标识用户）
        String ip = request.getRemoteAddr(); // 客户端IP
        String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); // 访问时间

        // 记录轨迹（实际可写入日志文件或数据库）
        String track = String.format(
                "【访问轨迹】时间：%s | 会话ID：%s | IP：%s | 方法：%s | URL：%s",
                time, sessionId, ip, method, url
        );
        System.out.println(track);
    }

    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        // 请求销毁时可做额外处理（如资源释放）
    }
}
